home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / TEMP / GNU / bison / RpcalcErrp < prev    next >
Text File  |  1995-06-28  |  1KB  |  31 lines

  1. Rpcalc Error
  2. Previous: <Rpcalc Main=>RpcalcMaio> * Next: <Rpcalc Gen=>RpcalcGeo> * Up: <RPN Calc=>RPNCalc>
  3.  
  4. #Wrap on
  5. {fH4}The Error Reporting Routine{f}
  6.  
  7. When {fCode}yyparse{f} detects a syntax error, it calls the error reporting
  8. function {fCode}yyerror{f} to print an error message (usually but not always
  9. {fCode}"parse error"{f}).  It is up to the programmer to supply {fCode}yyerror{f}
  10. (\*Note <Interface=>Interface>: Parser C-Language Interface), so here is the definition we will use:
  11.  
  12. #Wrap off
  13. #fCode
  14. \#include <stdio.h>
  15.  
  16. yyerror (s)  \/\* Called by yyparse on error \*\/
  17.      char \*s;
  18. \{
  19.   printf ("%s\\n", s);
  20. \}
  21. #f
  22. #Wrap on
  23.  
  24. After {fCode}yyerror{f} returns, the Bison parser may recover from the error
  25. and continue parsing if the grammar contains a suitable error rule
  26. (\*Note <Error Recovery=>ErrorRecov>).  Otherwise, {fCode}yyparse{f} returns nonzero.  We
  27. have not written any error rules in this example, so any invalid input will
  28. cause the calculator program to exit.  This is not clean behavior for a
  29. real calculator, but it is adequate in the first example.
  30.  
  31.